﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace KurFarkiHesaplama
{
    public partial class frmListe : Form
    {
        public frmListe()
        {
            InitializeComponent();
        }

        string CnnString = ConfigurationManager.ConnectionStrings["Mikro"].ConnectionString;

        private void frmListe_Load(object sender, EventArgs e)
        {

        }

        private DataTable ListData()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT [Firma Kodu], [Firma Ünvanı], [Ana Döviz Bakiye], [Alternatif Döviz Bakiye], [Güncel Alternatif Döviz Kuru], [Alternatif Döviz Bakiye] * [Güncel Alternatif Döviz Kuru] AS [Güncel Ana Döviz Bakiye],(([Alternatif Döviz Bakiye] * [Güncel Alternatif Döviz Kuru]) - [Ana Döviz Bakiye]) as [Fark]  ");
            sb.Append("FROM (SELECT cari_kod AS [Firma Kodu], cari_unvan1 AS [Firma Ünvanı], dbo.fn_CariHesapAnaDovizBakiye(N'0', 0, cari_kod, N'', N'', 0, '19000101', '29000101', 0) AS [Ana Döviz Bakiye], dbo.fn_CariHesapAlternatifDovizBakiye(N'0', 0, cari_kod, N'', N'', 0, '19000101', '29000101', 0) AS [Alternatif Döviz Bakiye],dbo.fn_KurBul(GETDATE(), dbo.fn_CariDovizCinsi(0, cari_kod, 1), 1) AS [Güncel Alternatif Döviz Kuru] ");
            sb.Append(" FROM            CARI_HESAPLAR WHERE        (cari_kod BETWEEN @ilk AND @son)) AS tbl");

            DataTable sonuc = new DataTable();
            using (SqlConnection cn = new SqlConnection(CnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(sb.ToString(), cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    cmd.Parameters.Add("@ilk", SqlDbType.NVarChar, 25).Value = txtStart.Text;
                    cmd.Parameters.Add("@son", SqlDbType.NVarChar, 25).Value = txtStop.Text;
                    using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
                    {
                        adp.Fill(sonuc);
                    }
                }
                cn.Close();
            }
            return sonuc;
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            if (txtStart.Text != "" && txtStop.Text != "")
            {
                dataGridView1.DataSource = ListData();
                dataGridView1.AutoResizeColumns();
            }
            else
            {
                MessageBox.Show("Başlangıç ve bitiş firma kodlarını boş geçmeyiniz !");
            }
        }

        private void btnTum_Click(object sender, EventArgs e)
        {
            frmEvrak evr = new frmEvrak();
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                Cari cr = new Cari();
                cr.Kodu = dataGridView1[0, i].Value.ToString();
                cr.Tutar = Convert.ToDecimal(dataGridView1[6, i].Value);
                if (cr.Tutar > 0)
                {
                    evr.Kesilecekler.Add(cr);
                }
            }
            evr.ShowDialog(this);
        }

        private void btnSecili_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                frmEvrak evr = new frmEvrak();
                Cari cr = new Cari();
                cr.Kodu = dataGridView1[0, dataGridView1.SelectedRows[0].Index].Value.ToString();
                cr.Tutar = Convert.ToDecimal(dataGridView1[6, dataGridView1.SelectedRows[0].Index].Value);
                if (cr.Tutar > 0)
                {
                    evr.Kesilecekler.Add(cr);
                }
                evr.ShowDialog(this);
            }
        }
    }
}
